<?php
require_once("../Datos/Selector.php");
require_once("../Datos/SubConsulta.php");
require_once("../Datos/Tablas/Tbl_ec_stock.php");
require_once("../Datos/Tablas/Tbl_ec_ventas.php");
require_once("../Datos/Tablas/Tbl_ec_proveedores.php");
require_once("../Datos/Selectores/Sel_Articulos.php");
require_once("../Datos/Selectores/Sel_Stock_n_Ventas.php");

class Sel_Stock_Venta extends Selector{

	function Sel_Stock_Venta(&$conexion, $articulo=''){
		$this->Selector($conexion);

		$this->Nombre = "Stock";
		$this->estTablaBase(new Tbl_ec_stock($conexion, ''));
		
        $relacionada = new Tbl_ec_proveedores($conexion, '');
		$this->agregarTablaRelacionada($relacionada, 'INNER JOIN');
		$this->agregarCampoJunta($this->tablaBase->obtCampo('stock_proveedor'), $this->obtCampoRelacionado('ec_proveedores', 'prov_id'), '=');
		
		$relacionada = new SubConsulta(new Sel_Articulos($conexion), '');
		$this->agregarTablaRelacionada($relacionada, 'INNER JOIN');
		$this->agregarCampoJunta($this->tablaBase->obtCampo('stock_articulo'), $this->obtCampoRelacionado('Articulos', 'Codigo'), '=');
		
		$relacionada = new SubConsulta(new Sel_Stock_n_Ventas($conexion), '');
		$this->agregarTablaRelacionada($relacionada, 'INNER JOIN');
		$this->agregarCampoJunta($this->tablaBase->obtCampo('stock_id'), $this->obtCampoRelacionado('Stock_n_Ventas', 'sv_stock'), '=');
		
		$campo = $this->obtCampoRelacionado('Stock_n_Ventas', 'ven_id');
		$campo->estAlias("ven_id");
		$campo->estEsBase(1);
		$campo->estEsReadOnly(1);
		$campo->estEsGrupo(1);
		$this->agregarCampoVisible($campo);
		
		$tabla = $this->tablaBase;
		$funcion = new Funcion('Codigo', 'Min', $tabla);
		$campo = $this->tablaBase->obtCampo('stock_id');
		$funcion->agregarCampo($campo);
		$funcion->estEsClavePrimaria(1);
		$this->agregarCampoVisible($funcion);

		$tabla = $this->obtTabla('Articulos');
		$funcion = new Funcion('Articulo', 'Concat', $tabla);
		$campo = $this->obtCampoRelacionado('Articulos', 'Articulo');
		$funcion->agregarCampo($campo);

		$funcion->agregarTexto(', ');

		$campo = $this->obtCampoRelacionado('Articulos', 'Marca');
		$funcion->agregarCampo($campo);
		
		$funcion->agregarTexto(' - $');
		
		$campo = $this->tablaBase->obtCampo('stock_costo');
		$funcion->agregarCampo($campo);
		
		$funcion->agregarTexto(' - ');
		
		$campo = $this->obtCampoRelacionado('ec_proveedores', 'prov_apellido');
		$funcion->agregarCampo($campo);

		$funcion->agregarTexto(', ');

		$campo = $this->obtCampoRelacionado('ec_proveedores', 'prov_nombre');
		$funcion->agregarCampo($campo);
		
		$funcion->agregarTexto(' - ');
		
		$campo = $this->tablaBase->obtCampo('stock_fecha_compra');
		$funcion->agregarCampo($campo);
		
		$funcion->estEsGrupo(1);
		$this->agregarCampoVisible($funcion);
		
		$campo = $this->tablaBase->obtCampo('stock_costo');
		$campo->estAlias('stock_costo');
		$this->agregarCampoVisible($campo);
		
		
		if($articulo != ""){
			
			$tabla = $this->obtTabla('Articulos');
			$funcion = new Funcion('artNombre', 'Concat', $tabla);
			$campo = $this->obtCampoRelacionado('Articulos', 'Articulo');
			$funcion->agregarCampo($campo);

			$funcion->agregarTexto(', ');

			$campo = $this->obtCampoRelacionado('Articulos', 'Marca');
			$funcion->agregarCampo($campo);
			$funcion->estEsGrupo(1);
			$this->agregarCampoVisible($funcion);
			
			$this->estHaving("artNombre = '" . $articulo . "'");
		}
		
		$this->txtConsulta = $this->GenerarConsulta();
 }
 
 function estCondicionOpciones($columnas){
	$this->estCondicion("stock_id NOT IN (SELECT ven_stock FROM ec_ventas) or Ventas.ven_id = '".$columnas['Codigo']."'");
	$this->txtConsulta = $this->GenerarConsulta();
 }
 	
}
?>
